//创建的第二个vue实例，
//富文本编辑器：发送解答内容
let postAnswer = new Vue({
    el:"#postAnswer", //绑定表单的父元素
    data:{
        message:"",
        hasError:false   //默认不显示错误信息
    },
    methods:{
        postAnswer:function () {
            console.log("question_detail.js=>postAnswer.postAnswer() ")
            //每次调用这个方法先清空错误信息
            this.hasError= false;
            //是两个vue对象，需要重新获取 qid
            let qid = location.search ;
            if(!qid){
                this.hasError=true;
                this.message="必须指定问题ID";
                return ;
            }
            qid = qid.substring(1);
            //后端只需要2个值，一个是问题id, 一个是内容；
            let content =  $("#summernote").val();
            if(!content){
                this.hasError = true;
                this.message = "回答内容不能为空";
                return ;
            }
            //id和content 都有了之后，打包成一个对象，统一发送
            // 和后端 AnswerVo 映射上，属性名要一致
            // 下面是创建一个新对象。
            let data = {
                //属性名 ：属性值
                questionId:qid,
                content:content
            }
            $.ajax({
                url:"/answers",
                method:"post",
                data:data,
                success:function ( r ) {
                    if( r.code == 201 ){
                        postAnswer.message=r.message;
                        postAnswer.hasError = true;

                        let answer = r.data ; //新加到数据库的解答对象（提交）
                        answer.duration = "刚刚";  // 在 answer对象声明并初始化 duration属性
                        //把这个回答加到vue实例的解答列表中
                        //因为是倒序的，所以应该放在数组的开头
                        // unshift() 是JavaScript提供的数组方法，将对象加到数组开头
                        // push()  是加到数组的末尾
                        anwerApp.answers.unshift( answer );
                        $("#summernote").summernote("reset"); //清空富文本编辑器
                        //设置计时器,让提示消息3秒后自动消失
                        //计时器是 JS 提供的内置函数（全局函数）
                        setTimeout( function () {
                            postAnswer.hasError = false ;
                        } , 3000 )
                    }else{
                        postAnswer.message = r.message;
                        postAnswer.hasError = true ;
                    }
                }
            })
        }
    }
});
